home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / ibm / loadall.arc / PROGD3.ASM < prev    next >
Assembly Source File  |  1990-02-21  |  4KB  |  121 lines

  1. RAM          EQU        $0040
  2. REGS         EQU        $0000
  3. Eprom        EQU        $F000
  4. Vectors         EQU    $FFD6
  5. PortA        EQU        REGS+$00
  6. PortC        EQU        REGS+$03
  7. PortB        EQU        REGS+$04
  8. DDRC         EQU        REGS+$07
  9. PortD        EQU        REGS+$08
  10. DDRD         EQU        REGS+$09
  11. CFORC        EQU        REGS+$0B
  12. TCNT         EQU        REGS+$0E
  13. TOC2         EQU        REGS+$18
  14. TCTL1        EQU        REGS+$20
  15. TCTL2        EQU        REGS+$21
  16. TMSK1        EQU        REGS+$22
  17. TFLG1        EQU        REGS+$23
  18. TMSK2        EQU        REGS+$24
  19. TFLG2        EQU        REGS+$25
  20. PACTL        EQU        REGS+$26
  21. Baud         EQU        REGS+$2B
  22. SCCR2        EQU        REGS+$2D
  23. SCSR         EQU        REGS+$2E
  24. SCDR         EQU        REGS+$2F
  25. OPTION       EQU        REGS+$39
  26. *
  27. *
  28. *
  29. FileLength   EQU     RAM
  30. Address      EQU     RAM+1
  31. RecordLength EQU     RAM+3
  32. *
  33. *
  34. *
  35.              ORG     RAM
  36. Initial      LDS     #$00FF               !Set stack pointer to $FF.
  37.              LDAA    #$30
  38.              STAA    Baud                 !With 8MHz crystal, baud=9600.
  39.              LDAA    #$0C
  40.              STAA    SCCR2                !Transmitter and receiver enabled.
  41.              LDAA    $80
  42.              STAA    PACTL                !Set bit 7 port A as an output.
  43.              LDAA    #$FF
  44.              STAA    DDRC                 !Set port C all bits as outputs.
  45.              STAA    DDRD                 !Set port D bits 0-5 as outputs.
  46. *
  47. *
  48. *
  49. RecFileLen   LDAB    SCSR
  50.              LDAA    PortD
  51.              EORA    #$80
  52.              STAA    PortD
  53.              ANDB    #%00100000           !Check for byte received.
  54.              BEQ     RecFileLen           !Not yet, so wait.
  55.              LDAB    SCDR                 !Get byte.
  56.              STAB    FileLength
  57.              STAB    SCDR
  58. RecNewRec    LDX     #Address
  59.              LDY     #3
  60. RecTranInfo  LDAB    SCSR
  61.              ANDB    #%00100000           !Check for byte received.
  62.              BEQ     RecTranInfo          !Not yet, so wait.
  63.              LDAB    SCDR                 !Get byte.
  64.              STAB    0,X
  65.              INX
  66.              STAB    SCDR                 !Send back to PC to verify.
  67.              DEY
  68.              BNE     RecTranInfo
  69.              LDX     Address
  70.              LDAB    RecordLength
  71.              SUBB    #3                   !Record length contains byte
  72.              CLRA                         ! count for address and checksum.
  73.              XGDY
  74. RecData      LDAB    SCSR
  75.              ANDB    #%00100000
  76.              BEQ     RecData
  77.              LDAB    SCDR
  78.              STAB    SCDR
  79. ProgData     LDAA    #$20
  80.              STAA    $003B
  81.              STAB    0,X
  82.              LDAA    #$21
  83.              STAA    $003B
  84.              BSR     DLY10
  85.              CLR     $003B
  86.              BSR     DLY10
  87.              LDAA    0,X
  88.              CBA
  89.              BNE     ProgData
  90.              STAA    SCDR                 !IBM now knows programmed this byte.
  91.              INX
  92.              DEY
  93.              BNE     RecData
  94.              DEC     FileLength
  95.              BNE     RecNewRec
  96.  
  97.                    !transfer done. need some kind of done exchange.
  98.                    !also need start addres sent or whatever.
  99.  
  100.              JMP     $F000                !TEMP ONLY
  101. *
  102. *
  103. *
  104. DLY10        PSHX
  105.              LDX     #$5000
  106. DLY10Loop    DEX
  107.              BNE     DLY10Loop
  108.              PULX
  109.              RTS
  110. *
  111. *
  112. *
  113. INTTrap      BRA     INTTrap
  114.              RTI
  115. *
  116. *
  117. *
  118. END          EQU     *
  119.              END
  120.  
  121.